package com.huixin.zhang.common.utils;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import org.springframework.util.StringUtils;


public class JsonUtils {
    private static String dateFormat = "yyyy-MM-dd HH:mm:ss";


    public static <T> T parseObject(String json, Class<T> valueType) {
        if (!StringUtils.isEmpty(json) && valueType != null) {
            return JSON.parseObject(json, valueType);
        }
        return null;
    }

    public static <T> T parseObject(String json, TypeReference<T> valueTypeRef) {
        if (!StringUtils.isEmpty(json) && valueTypeRef != null) {
            return JSON.parseObject(json, valueTypeRef.getType());
        }
        return null;
    }

    public static JSONObject parseJsonObject(String json) {
        if (StringUtils.isEmpty(json))
            return null;
        return parseObject(json, JSONObject.class);
    }

    public static String toJsonString(Object obj) {
        if (obj == null) {
            return null;
        }
        return JSON.toJSONStringWithDateFormat(obj, dateFormat);
    }

    public static JSONObject toJsonObject(Object obj) {
        if (obj == null) {
            return null;
        }
        String jsonText = toJsonString(obj);
        return JSON.parseObject(jsonText);
    }
}
